package com.sinodata.bsm.center.engine.notify;

import com.sino.uam.entity.UserInfo;
import com.sinodata.bsm.common.vo.Event;
import com.sinodata.bsm.common.vo.Notify;

/**
 * 
 * <p>
 * Description: 通知模式接口
 * </p>
 *
 * @author liulibo
 * @version 1.0

 * <p>
 * History: 
 *
 * Date                     Author         Version     Description
 * ---------------------------------------------------------------------------------
 * 2012-5-24 PM 3:54:14    liulibo        1.0         To create
 * </p>
 *
 * @since 
 * @see
 */
public interface NotifyMode {

    /**
     * 产生一个故障事件的通知消息
     * 
     * @param eventValue
     * @return
     */
    public String createNotifyMessage(Event event);

    /**
     * 产生一个事件的恢复通知消息
     * 
     * @param eventValue
     * @return
     */
    public String createResumeMessage(Event event);

    /**
     * 构建复杂消息，适用于邮件HTML格式信息
     * 
     * @return
     */
    public String createMsg(Notify notify);

    /**
     * 获取通知的发送目标
     * 
     * @param user
     * @return
     */
    public String getNotifyDestination(UserInfo userInfo);

}